home *** CD-ROM | disk | FTP | other *** search
/ New Star Software Collection / NSS_Collection.iso / 5-023 bas2com basic compiler / 1.img / LST.LST < prev    next >
File List  |  1980-01-01  |  12KB  |  239 lines

  1.                                                                        PAGE   1
  2.                                                                        01-01-80
  3.                                                                        00:18:00
  4. Offset  Data    Source Line          IBM Personal Computer BASIC Compiler V1.00
  5.  
  6.  001A   0002    1000 '  IBM Personal Computer BASIC Compiler Demonstration Prog
  7.                 ram
  8.  001A   0002    1010 '  Version 1.00 (C)Copyright IBM Corp 1982
  9.  001A   0002    1015 '  Licensed Material - Program Property of IBM
  10.  001A   0002    1020 '
  11.  001A   0002    1030 ON ERROR GOTO 2680
  12.                         ^ /E
  13.  002B   0002    1040 HIGH=0:NM$="BASCOM"
  14.  003B   000A    1050 DEFINT A-Z
  15.  003B   000A    1060 DIM S.STAT(20),S.X(20),S.Y(20),S.SP(20),S.PAT(20),S.PIC$(2
  16.                 0,1),S.SCORE(20)
  17.  003B   01AE    1070 DIM S.LEN(20),BUL(80),SND$(5)
  18.  003B   0292    1080 DIM B.X(20),B.Y(20),B.ACT(20)
  19.  003B   0310    1090 DIM N.PIC$(10,1),N.SCORE(10),N.SP(10),N.LEN(10)
  20.  003B   03AA    1100 DIM X.TOP$(6),X.BOT$(6)
  21.  003B   03E2    1110 WIDTH 80:WD=80
  22.  0045   03E4    1120 KEY OFF : COLOR 7,0,0 : CLS
  23.  005D   03E4    1130 IF WD=80 THEN SCREEN 0,1:LOCATE ,,0
  24.  007F   03E4    1140 M$="IBM Personal Computer" : Y=8 : GOSUB 2670
  25.  0090   03EA    1150 M$="BASIC Compiler" : Y=10 : GOSUB 2670
  26.  00A1   03EA    1160 M$="Demonstration Program" : Y=12 : GOSUB 2670
  27.  00B2   03EA    1170 M$="Do you have a color monitor (Y/N)? " : Y=16 : GOSUB 26
  28.                 70
  29.  00C3   03EA    1180 A$=INKEY$:IF A$="" THEN GOTO 1180
  30.  00D3   03EE    1190 IF A$="Y" OR A$="y" THEN CLR=1:GOTO 1230
  31.  00FE   03F0    1200 IF A$="n" OR A$="N" THEN CLR=0:GOTO 1230
  32.  0129   03F0    1210 IF A$=CHR$(3) THEN END
  33.  013D   03F0    1220 GOTO 1180
  34.  0140   03F0    1230 '
  35.  0140   03F0    1240 '
  36.  0140   03F0    1250 '      Target Program
  37.  0140   03F0    1260 '
  38.  0140   03F0    1270 CLS
  39.  0143   03F0    1280 M$="TTTTT   AAA   RRRR    GGGG  EEEEE  TTTTT" : Y=4 : GOSU
  40.                 B 2670
  41.  0154   03F0    1290 M$="  T    A   A  R   R  G      E        T  " : Y=5 : GOSU
  42.                 B 2670
  43.  0165   03F0    1300 M$="  T    A   A  R   R  G      E        T  " : Y=6 : GOSU
  44.                 B 2670
  45.  0176   03F0    1310 M$="  T    AAAAA  RRRR   G  GG  EEE      T  " : Y=7 : GOSU
  46.                 B 2670
  47.  0187   03F0    1320 M$="  T    A   A  R R    G   G  E        T  " : Y=8 : GOSU
  48.                 B 2670
  49.  0198   03F0    1330 M$="  T    A   A  R  R   G   G  E        T  " : Y=9 : GOSU
  50.                 B 2670
  51.  01A9   03F0    1340 M$="  T    A   A  R   R   GGGG  EEEEE    T  " : Y=10: GOSU
  52.                 B 2670
  53.  01BA   03F0    1350 LOCATE 13,1 : PRINT "Instructions:" : PRINT
  54.  01D4   03F0    1360 PRINT "Press space bar   to fire"
  55.  01DB   03F0    1370 PRINT "Press left  arrow to move left"
  56.  01E2   03F0    1380 PRINT "Press right arrow to move right"
  57.  01E9   03F0    1390 PRINT "Press ESC         to return to menu"
  58.  01F0   03F0    1400 PRINT "Press Ctrl-Break  to exit the program"
  59.  01F7   03F0    1410 PRINT : PRINT "NOTE - Only 1 shell per position"
  60.                                                                        PAGE   2
  61.                                                                        01-01-80
  62.                                                                        00:18:00
  63. Offset  Data    Source Line          IBM Personal Computer BASIC Compiler V1.00
  64.  
  65.  0205   03F0    1420 PRINT : PRINT "Press any key to continue"
  66.  0213   03F0    1430 A$=INKEY$:IF A$="" THEN 1430
  67.  0223   03F0    1440 IF A$=CHR$(3) THEN SCREEN 0,0,0:END
  68.  0242   03F0    1450 NL = 24 : WIDTH WD :LOCATE ,,0
  69.  025A   03F2    1460 IF CLR THEN COLOR 7,1,1
  70.  0274   03F2    1470 CLS
  71.  0277   03F2    1480 M.S=12
  72.  027D   03F4    1490 M.B=12
  73.  0283   03F6    1500 M.N=5 : GOSUB 2550
  74.  028C   03F8    1510 FOR I=1 TO 5
  75.  0292   03F8    1520   X.TOP$(I)="\"+STRING$(I,"|")+"/" : X.BOT$(I)="/"+STRING$
  76.                 (I,"|")+"\"
  77.  02E4   03FA    1530   IF A=3 THEN END
  78.  02F1   03FC    1540 NEXT I
  79.  02FF   03FC    1550 BULLIT$=CHR$(127)
  80.  030A   0400    1560 PLAY "mbt255l32"
  81.  0310   0400    1570 LOCATE 25,1 : IF WD=80 THEN PRINT "IBM Personal Computer "
  82.                 ;
  83.  032D   0400    1580 PRINT "Basic Compiler Demo"; :
  84.  0334   0400    1590 M$="(ESC to restart)" : LOCATE 25,WD-LEN(M$) : PRINT M$;
  85.  0355   0400    1600 D.T=12: M.T=(WD-5)*D.T-1
  86.  0369   0404    1610 LOCATE NL-1,3 : PRINT STRING$(WD-5,BULLIT$);
  87.  0388   0404    1620 FOR I=3 TO WD-3 : BUL(I)=1 : NEXT : NB=WD-5
  88.  03BC   0408    1630 FOR I=2 TO NL-1
  89.  03C9   040A    1640   LOCATE I,1 : PRINT CHR$(186); : LOCATE I,WD-1 : PRINT CH
  90.                 R$(186);
  91.  03FA   040A    1650 NEXT
  92.  040A   040A    1660 LOCATE 1,1 : PRINT CHR$(201);STRING$(WD-3,205);CHR$(187);
  93.  0434   040A    1670 LOCATE NL,1 : PRINT CHR$(200);STRING$(WD-3,205);CHR$(188);
  94.  0462   040A    1680 LOCATE NL-2,1 : PRINT CHR$(199);STRING$(WD-3,196);CHR$(182
  95.                 );
  96.  0492   040A    1690 BX=WD\2 : LOCATE NL-2,BX : PRINT CHR$(208);
  97.  04B8   040C    1700 LOCATE 1,8*(WD/40):PRINT " SCORE = ";SCORE:LOCATE 1,26*(WD
  98.                 /40):PRINT " TIME LEFT";(899-C.T)\10
  99.  0509   0410    1710 FOR C.T=1 TO M.T
  100.  0515   0412    1720   FOR I=3 TO M.S
  101.  0521   0414    1730     ON S.STAT(I)+1 GOTO 1740,1800,1930,1960,2080,2120
  102.  053B   0414    1740     ' Inactive
  103.  053B   0414    1750     IF RND>.17 THEN 2190
  104.  0548   0414    1760     J=4*RND
  105.  0554   0416    1770     S.STAT(I)=1 : S.X(I)=3 : S.Y(I)=I : S.SP(I)=N.SP(J) : 
  106.                 S.PAT(I)=0
  107.  0580   0416    1780     S.PIC$(I,0)=N.PIC$(J,0):S.PIC$(I,1)=N.PIC$(J,1) : S.SC
  108.                 ORE(I)=N.SCORE(J)
  109.  05C3   0416    1790     S.LEN(I)=N.LEN(J):LOCATE S.Y(I),S.X(I)-1:PRINT S.PIC$(
  110.                 I,0); : GOTO 2190
  111.  05F9   0416    1800     ' Fly
  112.  05F9   0416    1810     X1=S.X(I) : Y=S.Y(I) : X2=S.X(I)+S.LEN(I)
  113.  0617   041A    1820     IF C.T AND S.SP(I) THEN X2=X2-1 : GOTO 1860
  114.  0636   041A    1830     LOCATE S.Y(I),X1
  115.  064A   041A    1840     PRINT S.PIC$(I,S.PAT(I)); : X1=X1+1 : S.X(I)=X1
  116.  0678   041A    1850     S.PAT(I)=1-S.PAT(I) : IF X1=WD-7 THEN S.STAT(I)=2
  117.  069F   041A    1860     FOR J=0 TO M.B
  118.  06AA   041C    1870       IF B.ACT(J)=0 THEN 1910
  119.                                                                        PAGE   3
  120.                                                                        01-01-80
  121.                                                                        00:18:00
  122. Offset  Data    Source Line          IBM Personal Computer BASIC Compiler V1.00
  123.  
  124.  06BA   041C    1880       IF B.Y(J)<>Y THEN 1910
  125.  06CD   041C    1890       IF B.X(J)>=X1 THEN IF B.X(J)<=X2 THEN 1900 ELSE 1910
  126.                  ELSE 1910
  127.  06F2   041C    1900       S.STAT(I)=3 : B.ACT(J)=0 : SCORE=SCORE+S.SCORE(I)
  128.  0715   041C    1910     NEXT J
  129.  0725   041C    1920     GOTO 2190
  130.  0728   041C    1930     ' Final
  131.  0728   041C    1940     LOCATE S.Y(I),S.X(I) : PRINT "      "; : S.STAT(I)=0
  132.  0749   041C    1950     GOTO 2190
  133.  074C   041C    1960     ' Hit
  134.  074C   041C    1970     PLAY SND$(S.LEN(I)-1)
  135.  0761   041C    1980     X=S.X(I) : Y=S.Y(I) : LN=S.LEN(I)
  136.  077C   0420    1990     IF CLR THEN COLOR 4
  137.  078D   0420    2000     LOCATE Y-1,X-1 : PRINT X.TOP$(LN);
  138.  07AD   0420    2010     LOCATE Y,X-1 : PRINT "-";
  139.  07C3   0420    2020     LOCATE Y,X+LN : PRINT "-";
  140.  07DC   0420    2030     LOCATE Y+1,X-1 : PRINT X.BOT$(LN);
  141.  07FC   0420    2040     IF CLR THEN COLOR 7
  142.  080D   0420    2050     S.STAT(I)=4
  143.  0819   0420    2060     LOCATE 1,8*(WD/40):PRINT " SCORE = ";SCORE
  144.  083C   0420    2070     GOTO 2190
  145.  083F   0420    2080     ' Blown
  146.  083F   0420    2090     LOCATE S.Y(I),S.X(I) : PRINT SPC(S.LEN(I));
  147.  0861   0420    2100     S.STAT(I)=5
  148.  086D   0420    2110     GOTO 2190
  149.  0870   0420    2120     ' Down
  150.  0870   0420    2130     X=S.X(I) : Y=S.Y(I) : LN=S.LEN(I)+2
  151.  088D   0420    2140     LOCATE Y-1,X-1 : PRINT SPC(LN);
  152.  08AB   0420    2150     LOCATE Y,X-1 : PRINT SPC(LN);
  153.  08C8   0420    2160     LOCATE Y+1,X-1 : PRINT SPC(LN);
  154.  08E6   0420    2170     S.STAT(I)=0
  155.  08F2   0420    2180     GOTO 2190
  156.  08F5   0420    2190   NEXT I
  157.  0908   0420    2200   FOR I=0 TO M.B
  158.  0913   0422    2210     IF B.ACT(I)=0 THEN 2250
  159.  0923   0422    2220     IF B.Y(I)=NL-2 THEN 2240
  160.  093A   0422    2230     LOCATE B.Y(I),B.X(I):PRINT " ";:IF B.Y(I)=2 THEN B.ACT
  161.                 (I)=0:GOTO 2350
  162.  0968   0422    2240     B.Y(I)=B.Y(I)-1 : LOCATE B.Y(I),B.X(I) : PRINT BULLIT$
  163.                 ; : GOTO 2350
  164.  098F   0422    2250     A$=INKEY$ : IF LEN(A$)=0 THEN 2350
  165.  09A2   0422    2260     A=ASC(A$) : IF A<>32 THEN IF A=3 THEN SCREEN 0,0,0:COL
  166.                 OR 7,0:END ELSE GOTO 2300
  167.  09E0   0422    2270     IF BUL(BX)=0 THEN 2300
  168.  09F0   0422    2280     BUL(BX)=0 : B.X(I)=BX : B.Y(I)=NL-2 : B.ACT(I)=1:NB=NB
  169.                 -1
  170.  0A1F   0422    2290     LOCATE NL-1,BX : PRINT " "; : PLAY "N35"
  171.  0A3B   0422    2300 '
  172.  0A3B   0422    2310     IF A=0 THEN A=ASC(MID$(A$,2))-23
  173.  0A5A   0422    2320     IF A=52 AND BX>3 THEN BX=BX-1 : LOCATE NL-2,BX : PRINT
  174.                  CHR$(208);CHR$(196); : GOTO 2350
  175.  0AA5   0422    2330     IF A=54 AND BX<WD-3 THEN LOCATE NL-2, BX : BX=BX+1 : P
  176.                 RINT CHR$(196);CHR$(208);
  177.  0AF1   0422    2340     IF A=27 THEN SCORE = 0:GOTO 1270
  178.                                                                        PAGE   4
  179.                                                                        01-01-80
  180.                                                                        00:18:00
  181. Offset  Data    Source Line          IBM Personal Computer BASIC Compiler V1.00
  182.  
  183.  0B04   0422    2350   NEXT I
  184.  0B17   0422    2360 IF NB<>0 THEN GOTO 2390
  185.  0B21   0422    2370 NB=WD-5:FOR I=3 TO WD-3:BUL(I)=1:NEXT
  186.  0B55   0424    2380 LOCATE NL-1,3:PRINT STRING$(WD-5,BULLIT$);
  187.  0B74   0424    2390 LOCATE 1,26*(WD/40):PRINT " TIME LEFT";(899-C.T)\10:NEXT  
  188.                 C.T
  189.  0BB4   0424    2400 FOR I=0 TO M.B
  190.  0BBF   0426    2410 B.Y(I)=2
  191.  0BCB   0426    2420 NEXT I
  192.  0BDB   0426    2430 CLS:LOCATE 10,16*(WD/40):PRINT "YOUR SCORE WAS ";SCORE
  193.  0C01   0426    2440 IF SCORE<=HIGH THEN GOTO 2470
  194.  0C0D   0428    2450 HIGH=SCORE:LOCATE 11,10*(WD/40):PRINT "CONGRATULATIONS! TH
  195.                 AT'S THE NEW HIGH SCORE!"
  196.  0C30   0428    2460 LOCATE 15,15*(WD/40):INPUT "TYPE IN YOUR NAME-",NM$:FOR I=
  197.                 1 TO 20000:NEXT:CLS:SCORE=0:GOTO 1610
  198.  0C76   0428    2470 LOCATE 12,17*(WD/40):PRINT "NICE TRY, BUT "
  199.  0C93   0428    2480 BEGN=WD/2-LEN(NM$)/2:LOCATE 14,BEGN:PRINT NM$:SCORE=0
  200.  0CCE   042A    2490 LOCATE 16,13*(WD/40):PRINT "STILL HAS THE HIGH SCORE -";HI
  201.                 GH
  202.  0CF1   042A    2500 LOCATE 25,30:PRINT "HIT ENTER TO CONTINUE"
  203.  0D04   042A    2510 A$=INKEY$:IF A$="" THEN GOTO 2510
  204.  0D14   042A    2520 IF A$=CHR$(13) THEN CLS:GOTO 1610
  205.  0D2B   042A    2530 IF A$=CHR$(3) THEN SCREEN 0,0,0:COLOR 7,0:END
  206.  0D57   042A    2540 GOTO 2510
  207.  0D5A   042A    2550 N.PIC$(0,0)=" *"     : N.PIC$(0,1)=" +"     : N.SCORE(0)=3
  208.                 0 : N.SP(0)=0
  209.  0D76   042A    2560 N.PIC$(1,0)=" **"    : N.PIC$(1,1)=" ++"    : N.SCORE(1)=2
  210.                 0 : N.SP(1)=1
  211.  0D92   042A    2570 N.PIC$(2,0)=" ***"   : N.PIC$(2,1)=" +++"   : N.SCORE(2)=1
  212.                 5 : N.SP(2)=1
  213.  0DAE   042A    2580 N.PIC$(3,0)=" ****"  : N.PIC$(3,1)=" ++++"  : N.SCORE(3)=1
  214.                 0 : N.SP(3)=3
  215.  0DCA   042A    2590 N.PIC$(4,0)=" *****" : N.PIC$(4,1)=" +++++" : N.SCORE(4)= 
  216.                 5 : N.SP(4)=7
  217.  0DE6   042A    2600 FOR I=0 TO 10 : N.LEN(I)=I+1 : NEXT
  218.  0E05   042A    2610 SND$(0)="N65N56"
  219.  0E0D   042A    2620 SND$(1)="N37N47N33"
  220.  0E15   042A    2630 SND$(2)="n37N28N35"
  221.  0E1D   042A    2640 SND$(3)="N45N35N55N35"
  222.  0E25   042A    2650 SND$(4)="N55N35N45N65"
  223.  0E2D   042A    2660 RETURN
  224.  0E2E   042A    2670 LOCATE Y,(WD-LEN(M$)+2)\2 : PRINT M$; : RETURN
  225.  0E57   042A    2680 IF ERR=51 THEN PRINT "INTERNAL ERROR":BEEP:END
  226.  0E6F   042A    2690 PRINT "ERROR ";ERR;" ON LINE ";ERL:END
  227.  0E8B   042A    
  228.  0E8E   042A    
  229.  
  230. 22151 Bytes Available
  231. 17360 Bytes Free
  232.  
  233.     0 Warning Error(s)
  234.     1 Severe  Error(s)
  235.  
  236. D$(1)="N37N47N33"
  237.  0E15   042A    2630 SND$(2)="n37N28N35"
  238.  0E1D   042A    2640 SND$(3)="N45N35N55N35"
  239.  0E25   042A    2650